#ifndef _JEU_H
#define _JEU_H
#include "Carte.h"

/**\author Guaruina & JMC */

typedef struct sJeu
{
    Carte *jeu;
    int taille;
    int nb_points;
}Jeu;


/** @brief
Initialise un jeu de n cartes*/
void initJeu(Jeu *j, const int n);

/** @brief
Crée le tableau de 32 cartes */
void creerJeu(Jeu *);

/** @brief
Initialise le tableau de 8 cartes contenant la main d'un joueur*/
void initMainJoueur(Jeu *);

/** @brief
Initialise le tableau de 4 cartes représentant un pli sur la table*/
void initPliEnCours(Jeu *);

/** @brief
Initialise le tableau de 32 cartes pour les plis*/
void initTableauPli(Jeu *);

/** @brief
Mélange le jeu de 32 cartes*/
void melanger(Jeu*);

/** @brief
Coupe le jeu a un niveau aléatoire (niveau compris dans [2,30])*/
void couper(Jeu*);


/** @brief
Distribue le jeu de 32 cartes entre les quatre joueurs
Paramètres en données-résultats : m1, m2, m3, m4, les mains des joueurs, données initialisées
Les cartes sont distribuées 3 par 3 puis 2 par 2*/
void distribuer(Jeu *j, Jeu *m1, Jeu *m2, Jeu *m3, Jeu *m4);


/** @brief
Trie les cartes par couleurs et par valeur
Précondition : le jeu passé en paramètre est initialisé */
void trierJeu(Jeu *m);

#endif
